<?php

namespace App\model;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;

class User extends Model
{
	protected $table = 'user';
	protected $primaryKey='use_id';
	public $timestamps = false;


   /**
	*用户登录验证
	*作者：*****
	*/
	public function login($arr){
		$card=$arr['use_card'];
		$pwd=md5($arr['use_pwd']);
		return $user=$this->where('use_card','=',"$card")->where('use_pwd','=',"$pwd")->first();
	}
	public function getData($user_id){
		return $this->find($user_id);
	}
	/**
	 * 修改联系地址，手机号，邮箱
	 *作者：*****
	 * @$value
	 * @$type
	 */
	public function edituser($arr,$use_id){
		$user=$this->findOrFail($use_id);
		if($arr['type']==1){
			$user->use_address=$arr['value'];
		}
		if($arr['type']==2){
			$user->use_phone=$arr['value'];
		}
		if($arr['type']==3){
			$user->use_email=$arr['value'];
		}
		return $user->save();
	}
	/***
	 *
	 * 查询员工信息
	 *作者：*****
	 */
	public function lists(){
		return $this
		->select('use_id','use_name','use_num','use_card','use_birthday','use_sex','use_position','use_contractend','use_phone','use_status')
		->where('use_position','!=','学员')
		->paginate(2)->toArray();
	}

	/***
	 *
	 * 离职状态修改
	 *作者：*****
	 */
	public function quit($id){
		if(empty($id)||!isset($id)){
			return false;
		}
		$user=$this->findOrFail($id);
		$user->use_status=0;
		return $user->save();
	}
	/***
	 *
	 * 多条件查找及excel导出
	 *作者：*****
	 */
	public function search($search){
		foreach($search as $key =>$v){
			unset($search['type']);
			if(empty($v)){
				unset($search[$key]);
			}
		}
	return  $this->select('use_id','use_name','use_num','use_card','use_birthday','use_sex','use_position','use_contractend','use_phone','use_status')
				->where($search)
				->get();
	}
	/**
	 * 员工维护单个员工修改
	 * 作者：*****
	 */
	public function maintainedit($id){
		return $this->findOrFail($id);
	}
	/**
	 * 员工维护单个员工修改
	 * 作者：*****
	 */
	public function maintaineditok($arr)
	{
		$id=$arr['use_id'];
		if(empty($id)||!isset($id))
		{
			return false;
		}
		$user=$this->findOrFail($id);
		$user->use_name=$arr['use_name'];
		$user->use_num=$arr['use_num'];
		$user->use_card=$arr['use_card'];
		$user->use_birthday=$arr['use_birthday'];
		$user->use_position=$arr['use_position'];
		$user->use_contractend=$arr['use_contractend'];
		$user->use_phone=$arr['use_phone'];
		return $user->save();
	}

   /**
	* 学员进度基本信息
	* 作者：*****
	*/
   
   public function basic()
   {
   	  return $this
   	              ->join('student', 'student.stu_id', '=', 'user.use_id')
   	              ->join('papers', 'papers.pap_id', '=','student.per_id' )
   	              ->join('use_stu', 'use_stu.ust_id', '=', 'student.stu_state')
   	              ->join('course', 'course.cou_id', '=', 'student.cou_id')
   	              ->first();
   }

   /**
	* 学员阶段节点
	* 作者：*****
	*/

	public function phase()
	{
       return $this
   	              ->join('student', 'student.use_id', '=', 'user.use_id')
   	              ->join('user_role','user_role.use_id', '=', 'user.use_id')
   	              ->join('role','role.r_id', '=', 'user_role.r_id')
   	              ->join('subject','subject.sub_id', '=', 'student.suj_id')
   	              ->where('user_role.r_id',3)
   	              ->get();
	}
	/**
	 * 工作考勤
	 * 作者：*****
	 */
	public function attlist(){
		$arr=$this->join('attendance','attendance.use_id', '=', 'user.use_id')
				->select('use_name','att_month','att_year','att_id','user.use_id','use_num')
				->orderBy('attendance.att_month')
				->get()
				->toArray();
		foreach($arr as $v=>$k){
			$str=$this->select('use_name','use_num','att_month','att_year','att_info.*')
					->join('attendance','attendance.use_id', '=', 'user.use_id')
					->join('att_info','att_info.att_id','=','attendance.att_id')
					->where('att_info.att_id','=',$k['att_id'])
					->get()->toArray();
			$arr[$v]['count']=count($str);
			//$arr[$v]['info']=$str;

		}
		$group=$this->join('attendance','attendance.use_id', '=', 'user.use_id')
				->select('use_name','att_month','att_year','att_id','user.use_id')
				->groupBy('use_id')
				->get()
				->toArray();

		foreach($group as $kk=>$vv){
			foreach($arr as $key=>$val){
				if($vv['use_id']==$val['use_id']){
					$str=$arr[$key];
					$newarr[]=$str;
				}
			}

			$info[$vv['use_id']]=$newarr;
		}
		foreach($info as $k=>$v){
			foreach($v as $h=>$j){
				if($k!=$j['use_id']){
					unset($info[$k][$h]);
				}
			}
			$info[$k]=array_merge($info[$k]);
		}
		return $info;
	}
	/**
	 *员工请假
	 *作者：*****
	 */
	public function leave(){
		return $this->select('use_name','use_num','user.use_id','leave.*')
				->join('attendance','attendance.use_id', '=', 'user.use_id')
				->join('leave','leave.att_id', '=', 'attendance.att_id')
				->get();
	}
	/**
	 * 作者：*****
	 * 内容：根据学员身份证号查询出学员的ID
	 */
	public function selectID($card)
	{
		return $this
			->select('use_id')
			->where('use_card',$card)
			->first()
			->toArray();
	}
	/*
	 * 作者：*****
	 * 内容：查询最后一个学员的编号
	 */
	public function selectStuNum()
	{
		return $this
			->select('use_num')
			->where('use_position','学员')
			->orderBy('use_id', 'desc')
			->first()
			->toArray();
	}


	/**
	 * 内容:用户角色信息
	 * 作者:*****
	 */
    public function useRole()
	{
	   return $this->join('user_role','user_role.use_id', '=', 'user.use_id')
		           ->join('role','role.r_id', '=', 'user_role.r_id')
		           ->select('user.use_id','use_name','role.role','role.r_id')
		           ->where('use_del',1)
		           ->get()
		           ->toArray();
	
    }
	/*
     * 作者：*****
     * 内容；根据ID修改学员的基本信息
     */
	public function updateUserInfo($id,$use_data)
	{
		return $this
			->where('use_id',$id)
			->update($use_data);
	}
	/*
	 * 作者：*****
	 * 内容：根据编号查询信息，确保编号是唯一
	 */
	public function selectNum($num)
	{
		return $this
			->select('use_id')
			->where('use_num',$num)
			->first();
	}
	/*
	 * 作者：*****
	 * 内容：根据身份证号查询信息，确保学员唯一，不重复添加
	 */
	public function selectCard($card)
	{
		return $this
			->select('use_id')
			->where('use_card',$card)
			->first();
	}
	/*
	 * 作者：*****
	 * 内容：查处所有教练的姓名
	 */
	public function selectCoach()
	{
		return $this
			->select('use_id','use_name')
			->where('use_position',"教练")
			->get()
			->toArray();
	}
	/**
	 * 员工工资明细
	 * 作者：*****
	 */
	public function getSalary(){
		return $this
				//->join('use_position_salary','user.use_position','=','use_position_salary.use_position')
				->join('user_role','user.use_id','=','user_role.use_id')
				->join('role','user_role.r_id','=','role.r_id')
				->join('wages','wages.r_id','=','role.r_id')
				->where('user.use_position','<>','学员')
				->paginate(3);
	}
	/**
	 * 获取员工实发工资信息
	 */
	public function getfaSalary($user_id){
		return  $this
				//->join('salary','user.use_id','=','salary.use_id')
				->where('use_id',$user_id)
				->first();

	}

	/**
	 * 内容:用户角色信息
	 * 作者:*****
	 */
    public function oneRole($id)
	{
	   return $this->join('user_role','user_role.use_id', '=', 'user.use_id')
		           ->join('role','role.r_id', '=', 'user_role.r_id')
		           ->select('user.use_id','use_name','role.role','role.r_id')
		           ->where('user.use_id',$id)
		           ->first()
		           ->toArray();
	
    }

	/**
	 * 内容：单个用户权限查询
	 * 作者：*****
	 */
	 public function onePower($id)
	{
	 
	     $arr=$this->join('user_role','user_role.use_id', '=', 'user.use_id')
		           ->join('role','role.r_id', '=', 'user_role.r_id')
	               ->join('role_power','role_power.r_id', '=', 'role.r_id')
		           ->join('power','power.p_id', '=', 'role_power.p_id')
		           ->select('power.p_url')
		           ->where('user.use_id',$id)
		           ->get()
		           ->toArray();
		 $str=array();
		 foreach($arr as $v)
		 {
		   $str[]=$v['p_url'];
		 }

		 return $str;
	}
	/**
	 * 我的学费
	 * 作者：*****
	 */
	public function mytuition($name){
		return $this
				->join('cost','user.use_id','=','cost.use_id')
				->where('user.use_id',9)
				//->where('cost.c_notes','<>','欠费')
				->get();
	}

	/*
 * 作者：*****
 * 内容：上5页下5页处理
 */
	public function page($data,$page)
	{
		if($data['last_page']<5)
		{
			$max_num=$data['last_page'];
			$min_num=1;
		}
		else
		{
			$max_num=ceil($page/5)*5>$data['last_page']?$data['last_page']:ceil($page/5)*5;
			$min_num=($max_num%5)==0?$max_num-4:$max_num-$max_num%5+1;
		}
		return array('max'=>$max_num,'min'=>$min_num);
	}
	/*
	*作者：*****
	*内容：查询名字
	*/
	public function selectName($id)
	{
		return $this
				->select('use_name')
				->where('use_id',$id)
				->first();
	}

}

